﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Collections.ObjectModel;
using ActiproSoftware.Text.Languages.DotNet.Reflection;

namespace AbstraX.CodeElements
{
    public class NamespaceDefinitionCollection : ObservableCollection<INamespaceDefinition>, INamespaceDefinitionCollection
    {
        public INamespaceDefinition this[string name, bool caseSensitive]
        {
            get { throw new NotImplementedException(); }
        }

        public event EventHandler<ActiproSoftware.Text.Utility.CollectionChangeEventArgs<INamespaceDefinition>> ItemAdded;

        public event EventHandler<ActiproSoftware.Text.Utility.CollectionChangeEventArgs<INamespaceDefinition>> ItemAdding;

        public event EventHandler<ActiproSoftware.Text.Utility.CollectionChangeEventArgs<INamespaceDefinition>> ItemRemoved;

        public event EventHandler<ActiproSoftware.Text.Utility.CollectionChangeEventArgs<INamespaceDefinition>> ItemRemoving;
    }

    public class TypeDefinitionCollection : ObservableCollection<ITypeDefinition>, ITypeDefinitionCollection
    {
        public ITypeDefinition this[string name, bool caseSensitive]
        {
            get { throw new NotImplementedException(); }
        }

        public event EventHandler<ActiproSoftware.Text.Utility.CollectionChangeEventArgs<ITypeDefinition>> ItemAdded;

        public event EventHandler<ActiproSoftware.Text.Utility.CollectionChangeEventArgs<ITypeDefinition>> ItemAdding;

        public event EventHandler<ActiproSoftware.Text.Utility.CollectionChangeEventArgs<ITypeDefinition>> ItemRemoved;

        public event EventHandler<ActiproSoftware.Text.Utility.CollectionChangeEventArgs<ITypeDefinition>> ItemRemoving;
    }
}
